// house_pkg/pages/locate/index.ts
import qqMap from '../../../utils/qqmap'
Page({
  onLoad() {
    // 获取用户所在位置周围小区
    this.getLocation()
  },
  async getLocation() {
    // 用户所在位置的经纬度
    const {
      latitude,
      longitude
    } = await wx.getLocation()
    // 调用SDK提供的方法
    this.getPoint(latitude, longitude)
  },
  async chooseLocation() {
    // 用户所在位置经纬度
    const {
      latitude,
      longitude
    } = await wx.chooseLocation()
    // 查看经纬度
    // console.log(latitude, longitude)
    this.getPoint(latitude, longitude)
  },
  getPoint(latitude, longitude) {
    // 显示加载状态
    wx.showLoading({
      title: '正在加载中.....',
      mask: true,
    })
    // 逆地址解析（根据经纬度查询位置相关描述）
    qqMap.reverseGeocoder({
      location: [latitude, longitude].join(',') || '',
      success: ({
        result: {
          address
        }
      }) => {
        // 结果为当前所在的地址
        this.setData({
          address,
        })
      },
      fail: (err) => {
        console.log('逆纸质解析失败', err)
      },
    })

    // 搜索周边
    qqMap.search({
      // 搜索关键字查询周边小区
      keyword: '住宅小区',
      // 指定经纬度
      location: [latitude, longitude].join(',') || '',
      // 查询数据条数
      page_size: 5,
      success: (res) => {
        // 处理得到的地点信息(过滤多余数据)
        const points = []
        res.data.forEach(({
          id,
          title,
          _distance
        }) => {
          points.push({
            id,
            title,
            _distance,
          })
        })
        // 更新数据重新渲染
        this.setData({
          points,
        })
      },
      fail: (err) => {
        console.log('搜索周边失败', err)

        wx.utils.toast('没有找附近的小区!')
      },
      complete: () => {
        // 隐藏加载状态
        wx.hideLoading()
      },
    })
  },
  // 去楼栋页面
  goBuilding(e) {
    // console.log(e);
    // console.log(JSON.stringify(e.mark.point));
    wx.navigateTo({
      url: `/house_pkg/pages/building/index?point=${e.mark.point}`,
    })
  },
})